﻿@*@model Result*@
@model IEnumerable<ResultTK>
@using Kendo.Mvc.UI


@{
    if (Model.Count() > 0)
    {
        int NhomTheo = int.Parse(ViewBag.NhomTheo);

        string str = "<script> ";
        int TongHoSo = 0;
        TongHoSo = Model.Count();

        string _NhomTheo = NhomTheo == 1 ? " ngày" : (NhomTheo == 2 ? " tháng" : " năm");
        string type = "'datetime'";
        string data = " _data=[";
        if (NhomTheo == 1)
        {
            var DuLieu = Model.GroupBy(e => new { e.NgayDangKy.Year, e.NgayDangKy.Month, e.NgayDangKy.Day }).Select(e => new Data { Year = e.Key.Year, Month = e.Key.Month, Day = e.Key.Day + 1, Total = e.Count() });


            foreach (var item in DuLieu)
            {
                data += "[" + DateTimeJavaScript.ToJavaScriptMilliseconds(new DateTime(item.Year, item.Month, item.Day)) + "," + item.Total + "],";
            }

            data = data.Substring(0, data.Length - 1);
            data += "]; ";
            str += data;
        }
        else
        {
            string categories = " _categories=[";

            if (NhomTheo == 2)
            {
                var DuLieu = Model.GroupBy(e => new { e.NgayDangKy.Year, e.NgayDangKy.Month }).Select(e => new Data { Year = e.Key.Year, Month = e.Key.Month, Total = e.Count() });
                foreach (var item in DuLieu)
                {
                    categories += "'" + item.Month + "/" + item.Year + "',";
                    data += item.Total + ",";
                }
            }
            else
                if (NhomTheo == 3)
                {
                    var DuLieu = Model.GroupBy(e => new { e.NgayDangKy.Year }).Select(e => new Data { Year = e.Key.Year, Total = e.Count() });
                    foreach (var item in DuLieu)
                    {
                        categories += "'" + item.Year + "',";
                        data += item.Total + ",";
                    }
                }
            data = data.Substring(0, data.Length - 1);
            categories = categories.Substring(0, categories.Length - 1);
            data += "]; ";
            categories += "]; ";
            str += data + categories;
        }
        str += "; _type= " + type;
        str += " </script>";

        @Html.Raw(str)

        <div id="luong-dang-ky-ho-so"></div>
        <hr />
        <script>

            cloneToolTip = null;
            Highcharts.setOptions({
                lang: {
                    months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
                    weekdays: ['Thứ 2', 'Thứ 3', 'Thứ 4', 'Thứ 5', 'Thứ 6', 'Thứ 7', 'CN'],
                    shortMonths: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
                },
            });

            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'luong-dang-ky-ho-so',
                    zoomType: 'x',
                },
                title: {
                    text: 'Thống kê lượng đăng ký hồ sơ',
                    x: -20
                },
                subtitle: {
                    text: 'Số liệu từ:  @(ViewBag.TuNgay + " - " + ViewBag.DenNgay)<br/>(Nhóm theo  @Html.Raw(_NhomTheo))',
                    x: -20
                },
                xAxis: {
                    type: _type,
                    @if (NhomTheo==1){
            <text>
                    dateTimeLabelFormats: {
                        day: '%e/%b',
                    },
                    </text>
            }
            else
            { <text>
                    categories: _categories
                    </text>              }
                },
                yAxis: {
                    title: {
                        text: 'Số lượng hồ sơ'
                    }
                },
                tooltip: {
                    crosshairs: true,
                    shared: true,
                    valueSuffix: ' hồ sơ',
                    @if (NhomTheo==1){
            <text>
                    dateTimeLabelFormats: {
                        day: "%A, %e/%b/%Y",
                    }   </text>
        }
                },
                legend: {
                },
                exporting: {
                    sourceWidth: 1100,
                    sourceHeight: 550,

                }, plotOptions: {
                    series: {
                        cursor: 'pointer',
                        point: {
                            events: {
                                click: function () {
                                    if (cloneToolTip) {
                                        chart.container.firstChild.removeChild(cloneToolTip);
                                    }
                                    cloneToolTip = this.series.chart.tooltip.label.element.cloneNode(true);
                                    chart.container.firstChild.appendChild(cloneToolTip);
                                }
                            }
                        }
                    }
                },
                series: [{
                    name: 'Số lượng hồ sơ (Tổng hồ sơ: ' +@TongHoSo +')',
                    data: _data,
                    zIndex: 1,
                }]
            });

        </script>
        <hr />
        <a class="btn btn-danger" id='print' onclick="tableToExcel( '#Grid table','Thống kê số lượng đăng ký')">Xuất Excel</a>  
        <div class="clear pb10 "> </div>
        <div class="table-responsive">

            @( Html.Kendo().Grid(Model)
                    .Name("Grid")
                        .Pageable(page => page  // Phân trang
                            //.ButtonCount(3)    // Số button hiển thị phân trang
                                .Info(true)   // Hiển thị thông tin dữ liệu dưới cùng góc bên phải Grid
                                .Refresh(true)   // Hiển thị nút làm mới Grid
                                        .Messages(mess => mess
                                        .Display("{0}-{1} của {2} bản ghi.")
                                        .Empty("Không có dữ liệu")
                                        .Refresh("Làm mới")
                                        .First("Trang đầu tiên")
                                        .Last("Trang cuối cùng")
                                        .Next("Trang tiếp")
                                        .Previous("Trang trước")
                                    )
                                 .Input(false)

                            )
                    .Columns(columns =>
                    {
                        columns.Bound(p => p.MaTS);
                        columns.Bound(p => p.FullName);
                        columns.Bound(p => p.SBD);
                        columns.Bound(p => p.NgaySinh);
                        columns.Bound(p => p.NgayDangKy);
                        columns.Bound(p => p.TenHeDaoTao);
                        columns.Bound(p => p.TenKhoiThi);
                        columns.Bound(p => p.TenNganh);
                        columns.Bound(p => p.TenChuyenNganh);
                    })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .PageSize(1000000)
                     )

            )
        </div>
    }
    else
    {<h4 class="no-data">Không có dữ liệu</h4>}
}

